ScotMesh RNS Network
Connecting to ScotMesh
From the ScotMesh wiki
This page assumes you know nothing. If you have never heard of Reticulum, start with what Reticulum is and come back.
What you need
• A computer or a phone. Windows, macOS, Linux or Android all work.
• An internet connection — home broadband, wifi or mobile data. Any of them.
• No radio, no hardware, no money. You do not need a LoRa device to join. That comes later if you want it.
• No account. There is nothing to sign up for, nobody to ask, and no approval step. This is not politeness — the network has no mechanism for registration.
What you are actually doing
Reticulum is a piece of software that runs on your machine. On its own it can only talk to things on your local network, which is probably nothing.
ScotMesh runs a machine that is permanently online and connected onward to the wider Reticulum network. Connecting means telling your Reticulum where to find ours — one small block of configuration giving it a hostname and a port. After that your machine can reach everything our machine can reach.
The thing you add is called an interface. An interface is simply a way of reaching other Reticulum machines: over the internet, over a radio, over a cable. You can have several at once, and Reticulum will use whichever is working.
Two ways to do this
Use this if: You want it working in five minutes and never want to see a config file. Recommended.
Use this if: You want to run it on a server, a Raspberry Pi, or anything without a screen; or you simply prefer to understand what you are running.
Both end up in the same place. The app does the same thing as the full installation, with the config file hidden from you.
Out of the box: an app
These apps have Reticulum built in. You install one like any other program, tell it where ScotMesh is, and you are connected; there is no config file to see. Pick by what you have:
MeshChatX
Runs on: Windows, macOS, Linux, Android
Get it: meshchatx.com
Sideband
Runs on: Android, Windows, macOS, Linux
Get it: GitHub releases (github.com/markqvist/Sideband/releases)
Retichat or Columba
Runs on: iPhone
Get it: App Store (apps.apple.com/us/app/retichat/id6762225314), GitHub (github.com/torlando-tech/Columba-iOS)
MeshChatX (recommended)
MeshChatX (meshchatx.com) does messaging, files, voice calls, chat rooms and Nomad Network pages, and runs on everything but iPhone. If in doubt, use this.
1. Download it
Go to the releases page (github.com/Quad4-Software/MeshChatX/releases) and pick the file for your system:
Windows
File to download: the win-installer.exe
macOS, Apple Silicon (M1 and later)
File to download: the mac-arm64.dmg
macOS, Intel
File to download: the mac-x64.dmg
Linux
File to download: the .deb on Debian or Ubuntu, otherwise the .AppImage
Android
File to download: the android-universal.apk
2. Install and open it
Normal installation. On Android you will need to allow installing from outside the Play Store. On macOS you may need to right-click the app and choose Open the first time, because it is not from the App Store.
3. Add ScotMesh
1. Open the Interfaces page.
2. Click Add Interface.
3. For the type, choose TCPClientInterface. (“TCP client” just means it reaches out over the internet to a machine that is listening.)
4. Target Host: rns.scotmesh.net
5. Target Port: 4242
6. Save. Restart the app when it asks.
Within a few seconds the interface should show as connected. Skip to did it work.
Sideband
Sideband (github.com/markqvist/Sideband) is a messaging client by Reticulum's author; best on Android, especially with an RNode paired over Bluetooth.
1. Install it from the releases page (github.com/markqvist/Sideband/releases) (an .apk for Android; packages for Windows, macOS and Linux).
2. Open Settings, then Connectivity.
3. Turn on Connect via TCP and enter host rns.scotmesh.net, port 4242.
4. Go back; Sideband reconnects by itself. Your address and an announce button are on the main screen.
iPhone
Reticulum on iPhone is newer than on the other platforms. Retichat (apps.apple.com/us/app/retichat/id6762225314) is on the App Store and Columba (github.com/torlando-tech/Columba-iOS) is on GitHub; both are messaging clients. In either, add a connection of type TCP with host rns.scotmesh.net and port 4242. We have not used them ourselves yet; if you do, tell us how it went.
Full installation: Reticulum yourself
1. Install it
Reticulum is a Python program. If you have Python and pip, this is one command in a terminal:
pip install rns
On Ubuntu 24.04 and other recent Linux systems that command will refuse, with a message about an “externally managed environment”. This is deliberate on their part, not an error you caused. Use a virtual environment instead:
sudo apt install python3-venv
python3 -m venv ~/reticulum
~/reticulum/bin/pip install rns
Your commands then become ~/reticulum/bin/rnsd and ~/reticulum/bin/rnstatus instead of plain rnsd and rnstatus.
On Android or iPhone, do not do this — install one of the apps above instead. Running Reticulum by hand on Android needs Termux and is a lot of work for no gain.
2. Run it once, to create the config file
The config file does not exist yet. This trips people up: guides tell you to edit it, and you go looking, and there is nothing there. Reticulum writes it the first time it starts.
rnsd
It will print a few lines and keep running. Leave it a few seconds, then stop it with Ctrl+C. It has now created a config file and a couple of folders.
3. Find the config file
| System | Where it is |
| --- | --- |
| Linux, macOS | ~/.reticulum/config |
| Windows | C:\Users\<you>\.reticulum\config |
The folder starts with a dot, which means it is hidden. On Linux and macOS use ls -a to see it, or just open the path directly. On Windows, paste the path into Explorer's address bar.
It is a plain text file with no extension. Open it with any text editor — nano ~/.reticulum/config on Linux, TextEdit on macOS, Notepad on Windows.
4. Look at what is already there
Near the bottom you will find a section that looks like this:
[interfaces]
[[Default Interface]]
type = AutoInterface
enabled = Yes
That is one interface already configured. AutoInterface finds other Reticulum machines on your own local network, which is useful but probably finds nothing today.
Note the indentation. [interfaces] is at the left margin, [[Default Interface]] is indented two spaces, and its settings are indented four. This matters — the file will not load correctly if you get it wrong, and Reticulum will silently ignore the interface.
5. Add ScotMesh
Underneath the existing interface, still inside [interfaces], add:
[[ScotMesh Backbone]]
type = TCPClientInterface
enabled = yes
target_host = rns.scotmesh.net
target_port = 4242
So the whole section now reads:
[interfaces]
[[Default Interface]]
type = AutoInterface
enabled = Yes
[[ScotMesh Backbone]]
type = TCPClientInterface
enabled = yes
target_host = rns.scotmesh.net
target_port = 4242
The name in double brackets is yours to choose — it is only a label. Save the file.
6. Start it again
rnsd
Leave this running. Reticulum only works while it is running — close the terminal and you are off the network. See keeping it running for how to make it start by itself.
Did it work?
Open a second terminal, leaving rnsd running in the first, and run:
rnstatus
You are looking for something like:
TCPInterface[ScotMesh Backbone/rns.scotmesh.net:4242]
Status : Up
Traffic : ↑1.2 KB ↓14.8 KB
Status: Up means connected. Traffic counters climbing means the network is talking to you. If it says Down, see below.
To confirm you can actually reach something, ask for a path to our chat hub:
rnpath -t 004e5a15da221d9a236b0e8d74195f13
A reply mentioning a number of hops means you are properly on the network. That long string is a destination hash — Reticulum's equivalent of an address, except it is derived from a cryptographic key rather than handed out by anybody.
Now what?
Being connected is not obviously exciting on its own. Things you can now do:
• Join the chat room. Our hub hosts a room called scotmesh. See the chat room.
• Message people. Install a client and you have an address others can reach. See choosing a client.
• Browse pages hosted inside the network. See Nomad Network.
• Send and receive messages while offline, via our propagation node.
Give it a few minutes before judging it. Other nodes announce themselves periodically, so your view of the network fills in gradually rather than instantly.
Keeping it running
On Linux, run it as a service so it survives a reboot:
sudo tee /etc/systemd/system/rnsd.service >/dev/null <<'EOF'
[Unit]
Description=Reticulum Network Stack Daemon
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=YOUR_USERNAME
ExecStart=/usr/local/bin/rnsd
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now rnsd
Replace YOUR_USERNAME with your own, and check the ExecStart path matches where rnsd actually is — which rnsd will tell you, and it will be different if you used a virtual environment.
On Windows and macOS, or if you used MeshChatX, just leave the application running.
Other ways in
Only read these if the ordinary route above does not suit you.
Behind CGNAT, or a firewall you do not control
Mobile networks, student halls and workplace wifi usually still allow outbound TCP, so try the normal route first. If it is blocked, I2P will almost certainly get through, because it needs no inbound connections at either end.
Install an I2P router first:
sudo apt install i2pd
sudo systemctl enable --now i2pd
Then add, alongside your other interfaces:
[[ScotMesh I2P]]
type = I2PInterface
enabled = yes
peers = a3pswrtvpuro62ijhb7lwdt2n6aqgajglof27ynbonynmolzlz7q.b32.i2p
Be patient. I2P builds tunnels before it can carry anything, which takes five to ten minutes on a fresh install. The interface showing Down for that long is expected, not broken. It is slower than TCP; that is the trade for getting through.
Over LoRa radio
ScotMesh's first LoRa gateway is on air in Fife; if you are within range of it, or of another ScotMesh relay, a radio with the right settings reaches the whole network with no internet at all. Coverage is small so far, so this section also covers using LoRa between your own machines.
You need an RNode: a supported LoRa board flashed with RNode firmware. It is not a Meshtastic or MeshCore radio, though a lot of the same hardware can be reflashed into one.
[[RNode LoRa]]
type = RNodeInterface
enabled = yes
port = /dev/ttyUSB0
frequency = 869462500
bandwidth = 125000
txpower = 22
spreadingfactor = 9
codingrate = 5
Two things that catch everyone:
• Every radio must match exactly on frequency, bandwidth, spreading factor and coding rate. These are not negotiated. A radio with different settings is not “weakly connected” — it is completely deaf to you, with no error to tell you so. If two of your own radios cannot hear each other, check these four lines before anything else.
• Transmit time is legally limited in the licence-free bands, and it is easy to exceed. Set airtime_limit_short and airtime_limit_long. If you are a licensed amateur operating under your callsign, set id_callsign and id_interval too.
Higher spreading factors reach further and are dramatically slower — SF12 may carry a few hundred bits per second. Do not reach for it by default.
Another machine on your network already has Reticulum
Then you need no configuration at all. The Default Interface already in your config finds it automatically. This is the tidy way to share one radio: put the LoRa hardware on a Raspberry Pi, and everything else in the house reaches the mesh through it.
When it does not work
No config file to edit
What it usually means: You have not run rnsd yet. It creates the file on first start.
rnsd: command not found
What it usually means: Installed into a virtual environment — use the full path, e.g. ~/reticulum/bin/rnsd.
error: externally-managed-environment
What it usually means: Expected on modern Linux. Use the virtual environment method above.
Interface missing from rnstatus
What it usually means: Indentation is wrong, or it is outside the [interfaces] section.
Status: Down on the TCP interface
What it usually means: No route out, or a typo in the hostname. Check with ping rns.scotmesh.net.
Status: Down on I2P, for ages
What it usually means: Normal for the first five to ten minutes.
Up, but no traffic at all
What it usually means: Fine for the first minute or two. Longer than that, something upstream is filtering.
No path to a destination
What it usually means: Wait a couple of minutes. Nodes announce periodically and you cannot reach what has not announced.
A client hangs on “securing link”
What it usually means: See known bugs — this one has bitten us.
Two LoRa radios cannot hear each other
What it usually means: Mismatched frequency, bandwidth, spreading factor or coding rate.
Going further: carry traffic for other people
Everything above makes you a client: you use the network, but nothing routes through you. A transport node also relays other people's traffic and announces the paths it knows.
This is how the network stops depending on any one machine — including ours. If your computer is always on and has a decent connection, it is worth doing.
The switch itself is one line, in the [reticulum] section at the top of the config:
[reticulum]
enable_transport = Yes
Two things matter beyond that. Others must be able to reach you, which means either opening a port with a TCPServerInterface or using I2P if you cannot. And you must announce often enough to be found — the default is six hours, which in practice means nobody discovers you at all.
The full walkthrough is in running your own transport node. If you set one up, tell us and we will peer with you.
This is a copy of wiki.scotmesh.net/wiki/Connecting_to_ScotMesh, last edited 2026-09-11. To change it, edit the page on the web wiki; this copy follows within 10 minutes.